std::ifstream ifs(argv[1], std::ios::in | std::ios::binary | std::ios::ate ); //ifs.seekg(0, std::ios::end); size_t byte_count = ifs.tellg(); ifs.seekg(0, std::ios::beg); std::cout << "file size: " << byte_count << std::endl; char *pb = new char [byte_count]; ifs.read(pb, byte_count); std::ofstream ofs(argv[2], std::ios::out | std::ios::binary); ofs.write(pb, byte_count); ofs.close(); delete[] pb; ifs.close();
First, of course, you gotta include the necessary headers.
#include <fstream> // No .h extension
So, the fstream header contains defs for two types, std::ifstream and std::ofstream. (An easy way to remember this is the originals are istream and ostream, so just add an f before the "stream")
Output example
std::ofstream outfile; // instantiate output file
outfile.open("foo.txt"); // associate a disk file
// Write some data to the file
outfile << "This is a line of text" << std::endl;
outfile << "Another line of text" << std::endl;
outfile << "An integer: " << 42 << std::endl;
outfile << "A double: " << 3.1415 << std::endl;
outfile.close(); // close the file [optional]
Note: For automatic, stack-based objects, we don't need to call close since it will be done in the destructor.
remember to check whether the file is open....
if(!outfile.is_open())
void f5(void)
{
std::ifstream infile("foo.txt");
if (!infile.is_open())
std::cout << "Can't open file.\n";
else
{
std::string str;
while (!infile.eof())
{
infile >> str;
std::cout << str << std::endl;
}
}
}
void f11(void)
{
std::ifstream infile("foo.txt");
if (!infile.is_open())
std::cout << "Can't open file.\n";
else
{
std::string str;
while (!infile.eof())
{
if (std::getline(infile, str).eof())
break;
std::cout << str << std::endl;
}
}
}
Some modes and their usages
Mode Meaning
ios_base::in Open file for input (default for ifstream)
ios_base::out Open file for output (default for ofstream)
ios_base::app Seek to the end before each write
ios_base::trunc Truncate file (delete contents) after opening (default for ofstream)
ios_base::ate Seek to the end once after opening
ios_base::binary Open file in binary mode